// 全局请求封装
const baseURL = 'http://localhost:8080' // 替换为你的实际API地址

function request(options = {}) {
  return new Promise((resolve, reject) => {
    const token = uni.getStorageSync('token')
    
    // 打印完整的请求信息
    console.log('请求配置:', {
      url: baseURL + options.url,
      method: options.method,
      data: options.data,
      header: {
        'Content-Type': 'application/json',
        'Authorization': token ? `Bearer ${token}` : ''
      }
    })

    uni.request({
      url: baseURL + options.url,
      method: options.method || 'GET',
      data: options.data,
      header: {
        'Content-Type': 'application/json',
        'Authorization': token ? `Bearer ${token}` : ''
      },
      success: (res) => {
        // 打印完整的响应信息
        console.log('响应数据:', {
          statusCode: res.statusCode,
          data: res.data,
          header: res.header
        })

        if (res.statusCode === 401) {
          // token过期或未登录
          uni.removeStorageSync('token')
          uni.redirectTo({
            url: '/pages/login/login'
          })
          reject(new Error('未登录或登录已过期'))
        } else if (res.statusCode === 400) {
          // 添加 400 错误的处理
          reject(new Error(res.data.message || '请求参数错误'))
        } else {
          resolve(res.data)
        }
      },
      fail: (err) => {
        // 打印错误信息
        console.error('请求失败:', err)
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

export default request
